package sysTask

import (
	"context"

	"github.com/flipped-aurora/gin-vue-admin/server/plugin/sysTask/initialize"
	"github.com/flipped-aurora/gin-vue-admin/server/plugin/sysTask/router"
	"github.com/gin-gonic/gin"
)

type SysTaskPlugin struct {
}

func CreateSysTaskPlug() *SysTaskPlugin {
	return &SysTaskPlugin{}
}

func (s *SysTaskPlugin) Register(group *gin.RouterGroup) {
	router.RouterGroupApp.InitSysTaskRouter(group)
	ctx := context.Background()
	s.InitPlugin(ctx)
}

func (*SysTaskPlugin) RouterPath() string {
	return ""
}

// InitPlugin 初始化插件
func (*SysTaskPlugin) InitPlugin(ctx context.Context) {
	// 初始化配置
	initialize.Viper()
	// 初始化数据库表
	initialize.Gorm(ctx)
	// 初始化字典
	initialize.Dictionary(ctx)
	// 初始化API
	initialize.Api(ctx)
	// 初始化菜单
	sysTaskId, sysTaskLogId := initialize.Menu(ctx)
	// 初始化权限菜单关系
	initialize.AuthorityMenu(ctx, sysTaskId, sysTaskLogId)
}
